package com.web.kdl.service.flywheel;

import com.web.kdl.entity.matrix.Matrix;
import com.web.kdl.pojo.Vo.*;
import com.web.kdl.pojo.Vo.RT.RtDataVo;
import com.web.kdl.pojo.Vo.flywheel.FlywheelAlertInfoVo;
import com.web.kdl.pojo.Vo.flywheel.FlywheelMainInfoVo;
import com.web.kdl.pojo.Vo.flywheel.FlywheelVo;
import com.web.kdl.pojo.Vo.flywheel.FlyWheelEleCountVo;
import com.web.kdl.pojo.Vo.site.SiteBaseVo;
import com.web.kdl.pojo.dto.FlywheelInfoDTo;
import com.web.kdl.pojo.dto.SiteDto;
import com.web.kdl.pojo.dto.TableDto;
import com.web.kdl.pojo.form.FlywheelForm;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author： shulibin
 * @Date： 2025/7/24 8:59
 * @Describe：
 */
public interface FlyWheelService {

    //  统计飞轮最近7天的 日平均soc值
    List<Map<String, Object>> getFlywheelDayAverageSoc(FlywheelForm form);
    //  统计 飞轮 机组充放电次数 最近 12个月
    List<FlyWheelEleCountVo> getFlywheelMonthCount(FlywheelForm form);
    //    统计飞轮 日平均功率
    List<DailyPowerAvgVo>  getFlywheelDayAveragePower(FlywheelForm form);
    //  机组监控信息 近7天
    List<FlywheelAlertInfoVo> getFlywheelUnitInfo(FlywheelForm form);
    //  机组主要信息
    FlywheelMainInfoVo getFlywheelMainInfo(FlywheelForm form);
    //  统计各个飞轮充放电量 12个月汇总
    List<EnergyDataVo> getAllFlywheelEleCount(List<String> tableList);
    //  统计各个飞轮充放电量 12个月汇总
    List<EnergyDataVo> getAllFlywheelEleCount(String table);
    // 创建飞轮表 data alert status
    void createTable(String siteName, String matrixName,String flywheelName);

    //删除飞轮表 data alert status
    void deleteTable(String siteName, String matrixName,String flywheelName);

    ArrayList<RtDataVo> getAllProperty(TableDto siteDto);

    Map<String, FlyWheelData> getLastValue(FlywheelInfoDTo flywheelInfoDTo);
}
